package com.zqxq.lottery.util;

import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
import java.util.TreeSet;

/**
 * 说    明：  双色球奖金算法
 * 创 建 人：	一刀·胡
 * 创建时间：	2018/3/20 16:46
 * 修 改 人：
 * 修改日期：
 **/
@Slf4j
@Component
public class CalculatorSSQ extends Calculator {


    private static final int fNum = 6, bNum = 1, fMax = 33, bMax = 16;
    private static final int[][][] winners = {
            {{6, 1}},//一等奖
            {{6, 0}},//二等奖
            {{5, 1}},//三等奖
            {{5, 0}, {4, 1}},//四等奖
            {{4, 0}, {3, 1}},//五等奖
            {{2, 1}, {1, 1}, {0, 1}}//六等奖
    };
    private static Object[] winningsList = {"A", "B", 3000, 200, 10, 5};


    /**
     * 说    明：   获取中奖描述信息
     * 创 建 人：	一刀·胡
     * 创建时间：	2018/3/27 11:22
     * 修 改 人：
     * 修改日期：
     **/
    @Override
    public String winInfo(int[] win, Integer betTimes) {
        return winInfo(win,winningsList,betTimes);
    }

    /**
     * 说    明：  蓝红号 复投【无胆拖玩法】
     * 创 建 人：	一刀·胡
     * 创建时间：	2018/3/21 9:46
     * 修 改 人：
     * 修改日期：
     **/
    @Override
    public int[] win(String lotteryNum, String bettingNum, String playType) {
        return commonCal(lotteryNum,bettingNum,playType,fNum,bNum,fMax,bMax,winners);
    }

    public static void main(String[] args){
        String a = "02,04,05,06,11,12,17,19,20,21,24,27,32";
        String[] reds = a.split(",");
        String[] redHits = "04,11,12,17,24".split(",");
        TreeSet<Integer> ts = new TreeSet();
        for (String r : reds) {
            ts.add(Integer.parseInt(r));
        }
        List<Integer> redHitList = new ArrayList();
        for (String h : redHits) {
            redHitList.add(Integer.parseInt(h));
        }
        //步长++
        boolean ok = true;
        for (int b = 1; b <= 10 && ok; b++) {
            for (Integer h : redHitList) {
                if (!ts.contains(h + b)) {
                    ts.remove(h);
                    ts.add(h + b);
                    ok = false;
                    break;
                }
            }
        }
        StringBuilder redNumStr = new StringBuilder();
        for (Integer r : ts) {
            if (r < 10)
                redNumStr.append("0");
            redNumStr.append(r).append(",");
        }
        redNumStr.deleteCharAt(redNumStr.length() - 1);
        log.info(a);
        log.info(redNumStr.toString());
    }



}
